#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N=1e4+10;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//
int n;
//int a[N],b[N];
void solve()
{
	// cin>>n;
	// bool ok=true;
	// memset(a,0,sizeof a);
	// memset(b,0,sizeof b);
	// int pos1=0,pos2=0;
	// for(int i=n;i>0;i/=2)
	// {
	// 	int t=i%2;
	// 	if(t&1)
	// 	{
	// 		if(ok)
	// 		{
	// 			a[pos1]=1,ok=false;
	// 			pos1++;
	// 		}
	//  		else
	//  		{
	//  			b[pos2]=1,ok=true;
	//  			pos2++;
	//  		}
	// 	}
	// 	else
	// 	{
	// 		a[pos1]=1,b[pos2]=1;
	// 		pos1++,pos2++;
	// 	}
	// }
	// int ans1=0,ans2=0;
	// int cur1=1,cur2=1;
	// for(int i=0;i<pos1;i++)
	// {
	// 	if(a[i]==1) ans1+=cur1;
	// 	cur1*=2;
	// }
	// for(int i=0;i<pos2;i++)
	// {
	// 	if(b[i]==1) ans2+=cur2;
	// 	cur2*=2;
	// }
	// cout<<ans1<<" "<<ans2<<'\n';
	


	cin>>n;
	bool ok=false;
	int a=0,b=0;
	int cur=n,i=1;
	while(cur)
	{
		int t=cur%10;
		if(t%2)
		{
			a+=((t/2)+ok)*i;
			b+=((t/2)+!ok)*i;
			ok=!ok;
		}
		else
		{
			a+=((t/2))*i;
			b+=((t/2))*i;
		}
		i*=10;
		cur/=10;
	}
	cout<<a<<" "<<b<<'\n';


}

int main()
{
	close();
	int T; cin>>T;
	while (T--) solve();
	return 0;
}